<?php


namespace app\utils;


use app\lib\exception\AliyunApiException;
use think\File;

class AliyunOss
{
    public function upload(File $file, $folder = '', $filename = ''){

    // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
        $accessKeyId = env('aliyun.ak');
        $accessKeySecret =env('aliyun.sk');
    // Endpoint以杭州为例，其它Region请按实际情况填写。
        $endpoint = env('aliyun.endpoint') ;
    // 设置存储空间名称。
        $bucket = env('aliyun.bucketname');

        $folder == '' || $folder = '/'. $folder;
        $filename == '' && $filename = $file->getFilename();
    // 设置文件名称。
        $object = env('app.name') . $folder . '/' . $filename;

        try {
            $ossClient = new \OSS\OssClient($accessKeyId, $accessKeySecret, $endpoint);

            $ossClient->uploadFile($bucket, $object, $file->getPathname());
        } catch (\Exception $e) {
            throw new AliyunApiException($e->getMessage());
        }
        return $object;
    }
}